package com.darrenchan.netease04

object NiBianAndXieBian {
  def main(args: Array[String]): Unit = {
    var stu1 = new Student99[Any](12)
    var stu2 = new Student99[String]("xxx")

    //这句话在Java中是不能编译通过的
    //但是在scala中编译能通过
    /**
      * 原因：
      * 1.stu1和stu2类型相同
      * 2.stu2是stu1的子类
      */
    stu1 = stu2


    var tt1 = new TT[Any]()
    var tt2 = new TT[String]()

    tt2 = tt1
    tt2.test("xx")
  }
}


/**
  * 不写+ stu1 = stu2 编译不能通过
  */
class Student99[+T](val id: T) {

}

class TT[-T] {
  def test(x: T) = {
    println(x)
  }
}
